// Module : Armes
// Contient les fonctions de gestion des armes du jeu

#ifndef ARMES__H__
#define ARMES__H__

#include <stdlib.h>

#include "constantes.h" // pour le type des attaques


// Définition du type (cf armes.c)
typedef struct arme* arme;

// Alloue la mémoire pour une nouvelle arme
arme WPNnew();

// Libère la mémoire occupée par une arme
void WPNfree(arme wpn);



// Fonctions de récupération d'informations sur les armes

// Récupère le nom d'une arme
char* WPNgetName(arme wpn);

// Récupère le prix d'une arme
int WPNgetPrix (arme wpn);

// Récupère l'identifiant d'une arme
int WPNgetId (arme wpn);

// Récupère le niveau nécessaire pour utiliser une arme
int WPNgetLevel(arme wpn);

// Récupère le minimum de dégâts infligés par l'arme
int WPNgetDmgMin(arme wpn);

// Récupère le maximum de dégâts infligés par l'arme
int WPNgetDmgMax(arme wpn);

// Récupère le type de l'arme (corps à corps ou distance)
//type_arme WPNgetType(arme wpn);
type_attaque WPNgetType(arme wpn);
/////////////////



// Fonctions d'affectation pour les armes

// Change le nom de l'arme
void WPNsetName(arme wpn, char* nom);

// Change le prix d'une arme
void WPNsetPrix(arme wpn, int prix);

// Change l'identifiant d'une arme
void WPNsetId(arme wpn, int id);

// Change le niveau d'une arme
void WPNsetLevel(arme wpn, int lvl);

// Change les dégâts min pour une arme
void WPNsetDmgMin(arme wpn, int dmg);

// Change les dégâts max pour une arme
void WPNsetDmgMax(arme wpn, int dmg);

// Change le type d'une arme
//void WPNsetType(arme wpn, type_arme type);
void WPNsetType(arme wpn, type_attaque type);


#endif

